// const db=wx.cloud.database();
// // pages/ypxq/ypxq.js
// Page({

//   /**
//    * 页面的初始数据
//    */
//   data: {
// list:[]
//   },

// get(){
//   wx.cloud.callFunction({
//     name:"information"
//   }).then(res=>{
//     //console.log(res);
//     this.setData({
//       list:res.result.data
//     })
//   })
// },

//   /**
//    * 生命周期函数--监听页面加载
//    */
//   onLoad(options) {
// this.get();
// db.collection("medicine").watch({
//   onChange:res=>{
//     this.get();
//   },
//   onError:err=>{
//     console.log(err);
//   }
// })
//   },

//   /**
//    * 生命周期函数--监听页面初次渲染完成
//    */
//   onReady() {

//   },

//   /**
//    * 生命周期函数--监听页面显示
//    */
//   onShow() {
// this.get();
//   },

//   /**
//    * 生命周期函数--监听页面隐藏
//    */
//   onHide() {

//   },

//   /**
//    * 生命周期函数--监听页面卸载
//    */
//   onUnload() {

//   },

//   /**
//    * 页面相关事件处理函数--监听用户下拉动作
//    */
//   onPullDownRefresh() {

//   },

//   /**
//    * 页面上拉触底事件的处理函数
//    */
//   onReachBottom() {

//   },

//   /**
//    * 用户点击右上角分享
//    */
//   onShareAppMessage() {

//   }
// })

const db = wx.cloud.database();

// ✅ 工具函数（放在 Page({}) 外部顶部）
function formatTime(time) {
  const date = new Date(time);
  const y = date.getFullYear();
  const m = String(date.getMonth() + 1).padStart(2, '0');
  const d = String(date.getDate()).padStart(2, '0');
  const h = String(date.getHours()).padStart(2, '0');
  const min = String(date.getMinutes()).padStart(2, '0');
  return `${y}-${m}-${d} ${h}:${min}`;
}
Page({
  data: {
    list: [],               // 药品列表
    aiAnalysis: null,       // AI分析结果
    filteredAnalysis: [],   // 过滤后的分析结果
    showAnalysisPanel: false,  // 是否显示分析面板
    activeTab: 'interaction',  // 当前显示的标签
    analysisStatus: '',      // 分析状态
    unreadTips: 0
  },

  // // 获取药品数据
  // get() {
  //   wx.cloud.callFunction({
  //     name: "information"
  //   }).then(res => {
  //     this.setData({
  //       list: res.result.data
  //     });
  //     this.getAIAnalysis();  // 获取AI分析数据
  //   });
  // },
  async get() {
    const res = await db.collection("medicine").get();
    const list = res.data || [];

    list.forEach(item => {
      if (item.updateTime) {
        item.updateTime = formatTime(item.updateTime);
      } else {
        item.updateTime = '无记录';
      }
    });

    this.setData({
      list,
      medicineList: list
    });
  },
  // 获取AI分析结果（从数据库中获取）
  async getAIAnalysis() {
    const signature = this.getMedicineSignature(this.data.list);
    const cached = await this.getCachedAnalysis(signature);

    if (cached) {
      this.setData({
        aiAnalysis: cached,
        analysisStatus: '来自缓存'
      });
      this.getFilteredAnalysis();
    } else {
      this.setData({
        analysisStatus: '未找到缓存数据'
      });
    }

    // 开启实时监听数据库变化
    this.startDatabaseWatcher(signature);
  },

  // 获取药品签名，用于缓存查询
  getMedicineSignature(list) {
    return [...list]
      .sort((a, b) => a.name.localeCompare(b.name))
      .map(item => `${item.name}-${item.num || 0}-${item.dosage || ''}`)
      .join('|');
  },

  // 查询缓存的分析结果
  async getCachedAnalysis(signature) {
    const res = await db.collection('medicine_analysis_logs')
      .where({ signature })
      .orderBy('createdAt', 'desc')
      .limit(1).get();

    return res.data.length > 0 ? res.data[0].analysis : null;
  },

  // 获取过滤后的分析数据
  getFilteredAnalysis() {
    const tabTypeMap = {
      interaction: '相互作用',
      inventory: '高风险禁忌',
      usage: '用法建议'
    };
    const currentType = tabTypeMap[this.data.activeTab] || '相互作用';
    const filtered = (this.data.aiAnalysis || []).filter(item => item.type === currentType);
    this.setData({ filteredAnalysis: filtered });
  },

  // 切换标签
  switchTab(e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({ activeTab: tab }, () => {
      this.getFilteredAnalysis();
    });
  },

  // 打开/关闭分析面板
  toggleAnalysisPanel() {
    this.setData({ showAnalysisPanel: !this.data.showAnalysisPanel });
  },

  // 页面加载时获取数据
  onLoad(options) {
    this.get();
  },

  // 页面显示时触发
  onShow() {
    this.get();
  },

  // 开始监听数据库变化
  startDatabaseWatcher(signature) {
    const watcher = db.collection('medicine_analysis_logs')
      .where({ signature })
      .watch({
        onChange: (snapshot) => {
          console.log('数据库发生变化:', snapshot);

          // 数据库有变化，更新页面上的AI分析数据
          if (snapshot.docs.length > 0) {
            const newAnalysis = snapshot.docs[0].analysis;
            this.setData({
              aiAnalysis: newAnalysis,
              analysisStatus: '来自数据库实时更新'
            });
            this.getFilteredAnalysis();  // 更新过滤后的分析结果
          }
        },
        onError: (err) => {
          console.error('监听数据库失败:', err);
        }
      });

    // 将监听器保存到页面的 data 中，方便在页面销毁时停止监听
    this.setData({ dbWatcher: watcher });
  },

  // 页面销毁时停止数据库监听
  onUnload() {
    if (this.data.dbWatcher) {
      this.data.dbWatcher.close();  // 关闭监听
    }
  }
});
